package com.learning.spring.cloud.alibaba.hystrix.dashboard;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;

/**
 * ClassName: HystrixDashboardApplication
 * Description: Hystrix Dashboard
 * <p>
 * 1- 可视化监控 HystrixDashboard 需要使用注解 @EnableHystrixDashboard。
 * 2- 并没有注册到注册中心
 * 3- 访问地址： http://localhost:8030/hystrix
 * <p>
 * 1- 一次启动 ms-discovery-eureka、ms-provider-user、ms-consumer-movie-feign-hystrix-actuator、ms-hystrix-dashboard
 * 2- hystrix监控地址：http://localhost:8010/hystrix.stream
 * 3- 访问客户化监控地址： http://localhost:8030/hystrix
 * 4- 在可视化界面输入地址 http://localhost:8010/hystrix.stream，随意填写Title= ms-consumer-movie-feign-hystrix-actuator 点击监控
 * 5. 访问接口 http://localhost:8010/movie/user/1，然后观察 可视化界面监控
 * <p>
 * <p>
 * 1- 默认的隔离策略是THREAD，所以会有 Thread Pools 一栏，如果修改为信号量就没有这一栏监控了
 * 2- 简单起见，没有注册到注册中心
 * 3- 以上的监控都是针对单个微服务实例，如 http://localhost:8010/hystrix.stream，我们一般有多个微服务，每个微服务应用有多实例，需要Turbine 聚合监控数据
 * <p>
 * 数据监控流程 微服务 -> HystrixDashboard
 * Date: 2021/7/25 23:03 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
@Slf4j
@EnableHystrixDashboard
@SpringBootApplication
public class HystrixDashboardApplication {

    public static void main(String[] args) {
        SpringApplication.run(HystrixDashboardApplication.class, args);
        log.info("~~~~~~~~~ Hystrix Dashboard user application is started ~~~~~~~~~");
    }

}
